package service

import (
	"boy-go/modules/system/model"
	"boy-go/modules/system/vo"
	"boy-go/pkg/domain"
)

type SysMenuService interface {
	GetById(menuId int64) (*vo.SysMenuModel, error)
	List(req *vo.QuerySysMenuReq) (*vo.ListSysMenuRsp, error)
	Add(req *vo.AddSysMenuReq) (*vo.AddSysMenuRsp, error)
	Edit(req *vo.EditSysMenuReq) (*vo.EditSysMenuRsp, error)
	Del(menuId int64) error
	SelectMenuListByUserId(req *vo.QuerySysMenuReq, userId int64) ([]*model.SysMenu, error)
	SelectMenuTreeByUserId(userId int64) ([]*model.SysMenu, error)
	BuildMenus(menus []*model.SysMenu) []*domain.RouterVo
	BuildMenuTree(menus []*model.SysMenu) []*model.SysMenu
	BuildMenuTreeSelect(menus []*model.SysMenu) []*domain.TreeSelect
	SelectMenuListByRoleId(roleId int64) []*int64
	SelectMenuPermsByUserId(userId int64) []*string //根据用户ID查询权限
	SelectMenuPermsByRoleId(roleId int64) []*string //根据角色ID查询权限
}
